package DataStr.homework02.h2;

public class ex05 {

        // 主函数，用于测试
        public static void main(String[] args) {
            int[] a = {3, 5, 2, 8, 1, 9, 4, 7};
            int max = maxfun(a, 0, a.length - 1);  // 调用递归函数
            System.out.println("数组中的最大值是: " + max);
        }

        // 递归函数，求解 a[low..high] 中的最大值
        public static int maxfun(int[] a, int low, int high) {
            // 基本情况：只有一个元素时，直接返回该元素
            if (low == high) {
                return a[low];
            } else {
                // 计算中间位置
                int mid = (low + high) / 2;

                // 递归求解前半部分的最大值
                int max1 = maxfun(a, low, mid);

                // 递归求解后半部分的最大值
                int max2 = maxfun(a, mid + 1, high);

                // 返回两部分中的较大值
                return Math.max(max1, max2);
            }
        }
    }


